XML در دات نت : خواندن يک فايل
دهلران پی سی
سایت جامع علمی ,آموزشی,فرهنگی و تفریحی

 

در مقاله "XML در دات نت : ايجاد يک فايل " با نحوه ايجاد يک فايل XML با استفاده از XmlTextWriter آشنا شديم . در اين مقاله به بررسی  نحوه خواندن يک فايل XML  خواهيم پرداخت .
به منظور دستيابی به محتوای  يک سند XML ، می بايست  آن را Parse نمود تا به بخش مورد نظر دست يافت . به نرم افزارهائی که امکان انجام چنين عملياتی را فراهم می نمايند ، "پارسر"  گفته می شود . پارسرها دارای دو نوع متفاوت می باشند :

  • پارسرهای   ( DOM  : ( Document Object Model ،  يک  ساختار درختی  از سند XML را  در حافظه ايجاد نموده و امکان حرکت بر روی گره ها و يا خصلت های متفاوتی را در اختيار قرار می دهند.

  • پارسرهای   ( SAX  : ( Simple API for XML ، سندهای XML  را به صورت ترتيبی پردازش نموده و  نسبت به پارسرهای DOM حافظه بمرابت کمتری را اشغال می نمايند .

در MSXML ver 3.0 ، شرکت مايکروسافت دو پارسر فوق را ارائه نموده است . در دات نت نيز از پارسر DOM که دارای سازگاری و شباهت بسيار زيادی با MSXML است و پارسر SAX که دستخوش تغييرات متعددی نسبت به گذشته شده است ، استفاده می گردد . پارسرهای قبل از دات نت ، (مثلا" پارسر MSXML ) کلاس ها و اينترفيس های متعددی را به منظور انجام عمليات متقاوت بر روی اسناد XML ارائه نموده که با استاندارد پيشنهادی کنسرسيوم وب ، سازگاری و نزديکی قابل توجهی دارد. در دات نت علاوه بر استمرار وضعيت فوق ، روش های ساده و انعطاف پذيری به منظور کار بر روی اسناد XML ارائه شده است .

کلاس XmlTextReader
کلاس XmlTextReader روشی سريع و موثر به منظور parse نمودن اسناد XML  را ارائه می نمايد.  کلاس فوق از حافظه بطرز کاملا" حساب شده و بهينه ای استفاده می نمايد. صرفا" گره جاری در حافظه نگهداری می گردد ( Cached ) و عنصری که قبلا" parse شده است  در حافظه وجود نخواهد داشت . در صورتی که به وجود عناصر قبلی نياز باشد ، می بايست  فايل XML  مجددا" از ابتدا و به صورت forward-only  خوانده شود.  کلاس فوق از XmlReader به ارث رسيده و متعلق به System.Xml می باشد .
با استفاده از متدها و خصلت های ارائه شده توسط کلاس فوق، می توان بسادگی به محتوا و عناصر موجود در يک سند XML دست يافت . متدهای ارائه شده همواره گره جاری را برمی گردانند و در ادامه می توان عمليات مورد نظر را بر روی آنان انجام داد .
به منظور استفاده از کلاس XmlTextReader می بايست از System.Xml استفاده و يک نمونه از کلاس فوق را ايجاد نمود .

 Dim reader As XmlTextReader  
 reader = New XmlTextReader ( Server.MapPath("visitors.xml") )

به منظور خواندن محتوای يک سند XML از متد Read و در يک ساختار تکرار استفاده می نمائيم .

Do while reader.read ()
     'عمليات مورد نظر
loop

در صورتی که يک گره با موفقيت خوانده شود، مقدار True برگردانده شده و در ادامه می توان با استفاده از متدها  و خصلت های  ارائه شده ، عمليات مورد نظر را انجام داد. بررسی نوع يک گره ، دستيابی به خصلت هائی خاص و يا محتوای يک گره نمونه هائی در اين زمينه می باشد .
جدول زير مهمترين متدها و خصلت های  کلاس XmlReaderClass را نشان می دهد .

کاربرد

متد / خصلت

 متد فوق ، cursor را بر روی گره بعدی قرار داده و درصورتی که  گره با موفقيت خوانده شود ، مقدار true را بر می گرداند . از متد فوق در يک ساختار تکرار و به منظور خواندن و انجام پردازش های لازم در خصوص اسناد XML استفاده می گردد .

   Read()

 خصلت فوق نوع گره را بر می گرداند ( المان ، متن و يا ساير موارد ).

  NodeType

خصلت فوق،  نام گره جاری را بر می گرداند .

  Name

 خصلت فوق ، محتوای گره را بر می گرداند .

  Value

 محتوای يک گره را بر اساس يک نوع داده خاص برمی گرداند. مثلا" متد ReadString محتوای يک گره را به صورت يک رشته برمی گرداند .

  ReadString(), Readxxxx()....
متد فوق ، مقدار خصلتی را که به عنوان پارامتر در اختيار آن گذاشته شده است ،  برمی گرداند .   GetAttribute("attb_name")

در صورتی که گره ای  دارای يک خصلت باشد، مقدار true و در غيراينصورت مقدار False ، برگردانده می شود .

  HasAttributes

مثال : استفاده از XmlTextReader  به منظور خواندن يک فايل  XML
 در اين مثال قصد داريم فايل Visitors.xml را که در مقاله "XML در دات نت : ايجاد يک فايل  با نحوه ايجاد آن آشنا شديم را خوانده و عناصر موجود در آن را به همراه مقادير نسبت داده شده به هر يک در خروجی نمايش دهيم .

محتوای فايل Visitors.xml



 
      http://localhost/MakeXmlFile1.aspx
      Mozilla/4.0 (compatible; MSIE 6.0; ...
      fa, en-us;q=0.5
  
  127.0.0.1
      /MakeXmlFile1.aspx
      0
      IE6
      Unicode UTF-8)
      0
      GET
       False
       GET
  

مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر

<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Text" %>




  
  

 مرحله دوم :  پس از ذخيره کد فوق در فايلی با نام ReadXmlFile.aspx  و اجرای آن ، خروجی زير نمايش داده می شود . 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








ارسال توسط هادی احمدی

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

آمار وب سایت:  

بازدید امروز : 598
بازدید دیروز : 74
بازدید هفته : 3727
بازدید ماه : 3727
بازدید کل : 169872
تعداد مطالب : 736
تعداد نظرات : 23
تعداد آنلاین : 1

Google

در اين وبلاگ
در كل اينترنت
 <-PostTitle-> <-PostContent-> 1 <-PostLink->